/**
 * LayUI Upload控件扩展
 */
layui.define(['layer', 'upload', 'yjslayer'], function (exports) {
    "use strict";

    var $ = layui.jquery
        , layer = layui.layer
        , yjslayer = layui.yjslayer
        , upload = layui.upload
        , MOD_NAME = 'yjsupload';

    // 获取csrf-token
    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
    });

    var UploadPlugins = {
        // 上传头像(自动上传)
        uploadExcellentAvatar: function (elem, url, data, callback) {
            upload.render({
                elem: elem
                , url: url
                , data: data
                , exts: 'jpg|png|bmp|jpeg'
                , size: 2048
                , choose: function (obj) { // 选择文件后事件回调
                }
                , before: function (obj) { // 上传文件前事件回调
                    layer.load(0, {
                        shade: [0.5, '#FFF']
                    }, {time: 5 * 1000});
                }
                , done: function (res, index, upload) { // 执行上传后事件回调 res（服务端响应信息）、index（当前文件的索引）、upload（重新上传的方法，一般在文件上传失败后使用
                    layer.closeAll('loading'); //关闭loading
                    callback(res);
                }
                , error: function (index, upload) { // 执行上传失败事件回调 index（当前文件的索引）、upload（重新上传的方法）
                    layer.closeAll('loading'); //关闭loading
                    yjslayer.failMsg("头像文件上传失败！");
                    console.log('error=');
                }
            });
        },
        uploadExcel: function (elem, url, data) {
            upload.render({
                elem: elem
                , url: url
                , data: data
                , accept: 'file'
                , exts: 'xls|xlsx|xlsm|csv'
                , size: 40960
                , choose: function (obj) { // 选择文件后事件回调
                }
                , before: function (obj) { // 上传文件前事件回调
                    layer.load(0, {
                        shade: [0.5, '#FFF']
                    }, {time: 5 * 1000});
                }
                , done: function (res, index, upload) { // 执行上传后事件回调 res（服务端响应信息）、index（当前文件的索引）、upload（重新上传的方法，一般在文件上传失败后使用
                    layer.closeAll('loading'); //关闭loading
                    if (res['rspStatus'] == true) {
                        yjslayer.okMsg(res['rspMsg']);
                        $("[name='successFile']").val(res['rspData']['originSrc']);
                        $("[name='extension']").val(res['rspData']['originExt']);
                    } else {
                        yjslayer.failMsg(res['rspMsg']);
                    }
                }
                , error: function (index, upload) { // 执行上传失败事件回调 index（当前文件的索引）、upload（重新上传的方法）
                    layer.closeAll('loading'); //关闭loading
                    yjslayer.failMsg("Excel文件上传失败！");
                }
            });
        },
    };

    /**
     * 导出插件
     */
    exports(MOD_NAME, UploadPlugins);
});